﻿글쓴이 : Moe님
옮긴이 : 도스박스 다음 카페

OpenglHQ 사용시 문제가 있다면 fulldouble=true로 설정하십시오.

SDL용 OpenGL-HQ
=================

2006년 12월 15일자에 쓰여진 글입니다.
아래의 주소에서 새로운 버전을 받거나 예제 그림들을 보실 수 있습니다.
http://garni.ch/dosbox/

OpenGL-HQ는 그래픽 하드웨어를 사용하는 비디오 드라이버입니다.
사용자가 쓰고자 하는 크기에 맞춰 출력을 스케일합니다.
DOSBox, ScummVM, Exult와 같은 2D 게임/에뮬레이터에 해당합니다.

■ 알립니다:
이것은 베타 소프트웨어입니다.
걸림돌 없이 잘 돌아간다면 무슨 버그가 있을지 여러 번 테스트할 것을 당부 드립니다.
제대로 돌아가지 않는 것이 있다면, 먼저 새로운 버전을 찾아 보십시오.
이 문서 안에서 적혀 있지 않은 어떠한 문제와 마주치셨다면 제게 전자우편을 보내 주십시오.

* 기능 :
 - 빠른 스케일링을 위한 하드웨어 가속
 - 2D SDL 프로그램의 스케일링
 - 알맹이처럼 보이는 것들까지도 스케일링
 - 응용 프로그램이 OpenGL을 사용할 때 원래의 드라이버로 되돌리기
 - 이식할 수 있음
 - SDL과 함께 구성할 수 있음
 - 위의 URL에서 스크린샷을 꼭 한 번 보십시오

* 갖춰야 할 것들 :
 - Radeon 9600, GeForce 7500 이상 및 최신 드라이버
   (OpenGL 확장 ARB_fragment_program과 하드웨어 가속은 반드시 지원되어야 합니다)
 - SDL의 틀 안에서 사용자의 운영체제에 맞는 OpenGL 지원 (Windows, Linux/X11, 그리고 MacOS X)
 - 빠른 CPU (OpenGL-HQ은 CPU를 보통 원래의 OpenGL 쌍방향 스케일링 보다 10% 이상 사용합니다)

* 제한 :
 - 높은 해상도의 출력을 제공하는 프로그램을 사용하거나 드라이버 설정을 고화질로 맞추어 두셨다면
   오히려 느려질 수도 있습니다   (Radeon 9600-9800 계열의 칩들은 제한이 있습니다)
 - MacOSX에서는 테스트되지 않았습니다 (분명 사용할 수 있을 것입니다)
 - 가능성은 거의 없지만 바탕 화면 해상도가 올바르게 자동 감지되지 않을 수도 있습니다
   이 때에는 SDL_OPENGLHQ_FULLRS를 사용하십시오

* 고쳐질 가능성이 없거나 까닭을 알 수 없는 버그 :
 - Windows의 ATI 드라이버들은 16비트 색에서 올바르지 않은 pbuffer를 사용하는 것 같습니다
   제대로 보이지 않는다면, 색을 32비트로 바꾸어 보십시오 -- 지금은 더 이상 통하지 않는 것 같습니다. 확인 바람.
 - ATI의 3중 버퍼링 기능은 몇몇 응용 프로그램들과 충돌을 일으킵니다
   이와 비슷한 일이 일어나면 아래에 보이는 SDL_OPENGLHQ_DOUBLEBUF 설정을 사용해 보시기 바랍니다
   (사용하고 있는 드라이버에 맞추어 확인해야 하겠음)

* 고쳐져야 할 버그들 :

이제까지 알려진 버그는 없습니다.

또 다른 문제들을 보신 적이 있다면 아래의 [문제 해결] 구문을 찾아 보십시오.
여러분의 문제가 문제 해결 구문에 없다면 되도록 자세하게 글을 써서 제게 보내 주십시오 :
1) 어떠한 작업을 하였으며
2) 무슨 일이 일어날 것인지 예측했고
3) 대신 무슨 일이 일어났는지
4) 그리고 문제의 스크린샷과 관련된 설정 파일(DOSBox라면 dosbox.conf)을 같이 보내 주십시오.




사용 방법 (빠른 발걸음)
=======================

Windows에서의 빠른 발걸음입니다. 다른 운영체제에서는 그에 맞게 따로 수정해야 합니다.

1) SDL.DLL을 응용 프로그램의 디렉터리에 복사하십시오. 덮어쓰기를 묻는다면 덮어 씌우십시오.

2) 다음의 줄이 들어간 일괄 파일을 하나 만드십시오. (메모장을 열고)

set SDL_VIDEODRIVER=openglhq
set SDL_OPENGLHQ_WINRES=800x600
<응용 프로그램의 이름>.exe

3) 파일 이름은 ▶<응용 프로그램의 이름>.bat◀ 로 지정하여 EXE 파일이 들어있는 같은 디렉터리에 저장하십시오.

4) 응용 프로그램을 시작하려면 배치 파일을 두 번 누르십시오.
    일괄 파일을 사용하려면 바로가기 아이콘을 만들거나 기존의 바로가기를 수정하십시오.


구성
=============

환경 변수로 구성할 수 있습니다.
되도록 일괄(BAT) 파일에서 사용하십시오. (바로 앞의 구문을 읽어볼 것)

SDL_VIDEODRIVER - OpenGL-HQ를 사용합니다
SDL_OPENGLHQ_WINRES
SDL_OPENGLHQ_FULLRES - 창/전체 화면 크기를 "960x720"과 같은 해상도로 설정합니다.
		      960x720-16 안에서 비트 깊이를 추가합니다. 주기적으로 고정 스케일링
		      값을 지정할 수 있습니다 (예 : 2.5)
		      기본값 - 창: "1", 전체 화면 : 바탕 화면 해상도
SDL_OPENGLHQ_VIDEODRIVER - SDL 비디오 장치의 이름을 설정합니다 (SDL_VIDEODRIVER에 대해 일반적으로 사용하는 것)
SDL_OPENGLHQ_DOUBLEBUF - 응용 프로그램에 강제로 이중 버퍼링을 사용하도록 합니다.
			  일부 응용 프로그램들과 드라이버와의 충돌을 해결하지만 다른 응용 프로그램들이 제대로
			  동작하지 않을 수도 있습니다.
SDL_OPENGLHQ_STATIC
SDL_OPENGLHQ_DYNAMIC - HQ를 계산하기 위한 매개변수가 두 개 있습니다. 기본 수치(static 10, dynamic 33)은 대부분의 경우
		            가장 좋습니다. 렌더링을 최적화하려면 이 값을 사용해 보십시오 : static 0-255, dynamic 0-100
SDL_OPENGLHQ_DATA - OpenGL-HQ를 위한 데이터 파일들이 들어있는 디렉터리 - 설정하지 마십시오

지정된 결과를 제대로 적용하려면 SDL_VIDEODRIVER를 설정해야 합니다.
창으로 된 응용 프로그램들을 스케일하려면 SDL_OPENGLHQ_WINRES를 설정하십시오.
그 밖의 모든 것은 보통 필요하지 않으며 이 설정들은 자동으로 감지됩니다.

모든 SDL 응용 프로그램들에 대한 옵션을 설정하려면 아래의 과정을 따르십시오:

Windows : 제어판 → 시스템 등록 정보 → 고급 → 환경 변수
Unix와 같은 운영체제 : ~/.profile에 "export <환경 변수 이름>=<값>"를 추가


성능
===========

짧게 말하면: 정말 대단합니다.

하드웨어적으로 최소 요구사항을 거의 충족하지 않은 상태에서
DOSBox에서 frameskip 0과 scaler를 2x로 쓰며 보호 모드를 쓰는, 리소스를 많이
잡아먹는 높은 해상도의 SVGA 프로그램을 돌리면 성능은 거의 20%까지 떨어집니다.
frameskip을 4로 두면 성능차는 5-10% 정도가 됩니다.

VGA 해상도의 스케일을 4x까지 지정하면 차이는 더 줄어듭니다:
frameskip 0에서는 성능이 12% 떨어집니다. 소프트웨어로 스케일링하면
더욱 나빠집니다: Normal2x는 20%, advmame2x는 25%, hq2x(최적화 되지 않은
HiEnd3d 버전)는 심지어 40%까지 떨어집니다.



문제 해결
===============

1.
물음: 무언가가 동작하지 않거나 이상합니다.

풀이: 새로 나온 공식 비디오 드라이버를 사용하셔야 합니다.
       개인이나 단체가 수정한 드라이버에서는 잘 돌아가는지 알아보지 못했으며
       오래된 드라이버에서는 실패할 가능성이 높습니다.

2.
물음: DOSBox가 충돌을 일으킵니다.

풀이: DOSBox가 비디오를 띄우려고 할 때 오류를 제대로 관리하지 못하는 것입니다.
        이 문제가 수정될 때까지 하드웨어가 OpenGL-HQ를 지원하지 못한다는 것을 뜻합니다.

3.
물음: 전체 화면으로 바꾸면 DOSBox가 멈춰 버립니다

풀이: ATI 드라이버 문제입니다. dosbox.conf에서 "fulldouble=false"로 설정하거나
       환경 변수에서 SDL_OPENGLHQ_DOUBLEBUF를 사용하십시오

4.
물음: 너무 느립니다!

풀이: 아마도 카탈리스트 제어판에서 '수직 동기화 대기'를 강제로 설정하고
        응용 프로그램이 이중 버퍼링을 사용하는 것 같습니다 (예 : DOSBox의 fulldouble=true)
        Radeon 9600-9800 계열의 칩에서 해상도를 높게 잡으면 버거울 수 있습니다.
        이렇게 처음으로 완전히 프로그래밍을 거친 칩들은 제한이 있습니다. 그러므로 놀라지 마십시오.

5.
물음: 부분적으로는 돌아가지만 몇몇 비디오 모드는 이전과 같이 스케일되지 않고 그대로입니다.
물음: 보여지는 것이 스크린샷에서 보던 것 보다 더 나쁩니다. 흐릿하고 깔끔한 데를 찾아 볼 수 없습니다.
물음: 엥? 전 그대로 따라했는데 아무 것도 바뀐 게 없는데요?

풀이: 프로그램 안의 모든 소프트웨어 스케일링을 사용하지 마십시오.
        많은 에뮬레이터들은 몇 가지 종류의 스케일링을 기본값으로 두지만 OpenglHQ는
        x1 스케일링 (없음, scaler=none) 하고만 동작합니다.

6.
물음: 제 마우스가 느립니다! 어떻게 빠르게 할까요?
풀이: 얼마 안 되어서 거의 해결되었습니다. 그러나 마우스를 끌다 보면 비디오 드라이버가 가속 설정을 바꿀 수 있습니다.
        x11 드라이버를 쓰면 느려지므로 환경 변수를 써서 수정해 보시기 바랍니다.


더 자세한 도움말을 보려면, http://vogons.zetafleet.com의
"DOSBox Patches" 포럼에 들어가서 OpenGL-HQ를 찾아보십시오.
이 코드는 DOSBox에만 맞춰져 처음 개발되었습니다.

Sam Lantinga님이나 SDL 팀에게는 OpenGL-HQ에 관하여 전자우편을 보내지 마십시오.
그들은 OpenGL-HQ와 어떠한 관계도 없습니다.


개발자 정보는 우리말로 뜻을 옮기지 않았습니다.


라이센스
=======

	SDL - Simple DirectMedia Layer OpenGL-HQ scaling
        Copyright (C) 2005 Jörg Walter <jwalt@garni.ch>

	이 라이브러리는 자유 소프트웨어입니다. 자유 소프트웨어 재단이 공개한
	GNU 라이브러리 공공 라이선스의 조항에 따라 다른 곳으로 배포하거나
	수정할 수 있습니다.

	이 라이브러리는 '유용'을 목적으로 배포됩니다.
	그러나 상업에 언급된, 또는 특정 목적에 타당하다고 여겨지는 어떠한 보상도 하지 않습니다.
	더 자세한 정보는 GNU 라이브러리 공공 라이선스를 살펴 보십시오.

	이 라이브러리에 관련된 일을 하려면 GNU 라이브러리 공공 라이선스의 사본을 취득하여야 합니다.
	그렇지 않다면 다음의 주소로 글을 써서 보내 주십시오.
	Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

SDL 패치는 바탕화면 해상도 자동 감지를 위해 2005년 1월자의 SDL 전자우편 목록에 있는 코드를 사용합니다.


고마움의 말씀
=========

Windows 빌드를 제공하고 테스트하는 데 도움을 주신 VOGONS의 모든 분들께
고마운 말씀을 드립니다. EXT_framebuffer_object로 코드를 포팅해 주신
VOGONS 포럼의 gulikoza님께 더욱 고맙다는 말씀을 드립니다.


바뀐 점
======
2006-12-15  마우스를 움직일 때 일어나는, 주로 전체 화면을 쓰는 응용 프로그램에서 나타나는 조그마한 버그 수정
            API 호환성 개선, 쓸모 없는 픽셀 복사 줄임, MacOSX 지원
2006-11-22  ATI 카드의 16비트 비디오 문제 해결, 컴파일 시퀀스 개선,
            렌더링 정확도를 높이고, 줄을 간결히 하여 더 빨라짐
2006-11-21  렌더링을 위해 EXT_framebuffer_object 확장 사용 :
               스레딩 문제 고침, 성능 개선, SDL 1.2로 포팅, 64비트 clean make 처리
